package com.fallsvc.onlinemusic.tools;

import org.apache.commons.codec.digest.DigestUtils;

/**
 * @auther falls_vc
 * description:
 * @date 2025/3/31  21:35
 */
public class MD5Util {
    //定义⼀个固定的盐值
    private static final String salt = "1b2i3t4e";
    public static String md5(String src) {
        return DigestUtils.md5Hex(src);
    }
/**
 * 第⼀次加密 ：模拟前端⾃⼰加密，然后传到后端
 * @param inputPass
 * * @return
 * */
    public static String inputPassToFormPass(String inputPass) {
        String str = "" + salt.charAt(1) + salt.charAt(3) + inputPass
                 +salt.charAt(5) + salt.charAt(6);
        return md5(str);
     }
 /**
  * * 第2次MD5加密
  * * @param formPass 前端加密过的密码，传给后端进⾏第2次加密
  * * @param salt ⽤⼾数据库当中的盐值
  * * @return
  * */


    public static String formPassToDBPass(String formPass, String salt) {
        String str = "" + salt.charAt(0) + salt.charAt(2) + formPass
                 +salt.charAt(5)
                 +salt.charAt(4);
        return md5(str);
    }
 /**
  * * 上⾯两个函数合到⼀起进⾏调⽤
  * * @param inputPass
  * * @param saltDB
  * * @return
  * */


    public static String inputPassToDbPass(String inputPass, String saltDB) {
        String formPass = inputPassToFormPass(inputPass);
        String dbPass = formPassToDBPass(formPass, saltDB);
        return dbPass;
    }


    public static void main(String[] args) {
        System.out.println("对⽤⼾输⼊密码进⾏第1次加 密："+inputPassToFormPass("123456"));
        System.out.println("对⽤⼾输⼊密码进⾏第2次加 密："+formPassToDBPass(inputPassToFormPass("123456"),
                 "1b2i3t4e"));
        System.out.println("对⽤⼾输⼊密码进⾏第2次加 密："+inputPassToDbPass("123456", "1b2i3t4e"));

    }

}
